/**
 * 
 * If you have edited the file, please update
 * all the last-modified fields manually. Thanks!
 *
 * @last-modified by: 
 * @last-modified date: 
 * @last-modified time: 
 *
 * @author Swee Zhi
 * @date-created Sep 6, 2011    @time-created 10:23:09 PM
 *
 * @project: 
 * @module: 
 * @institution: 
 *
 */
package util.entityhelper;

import entity.BranchAddressEntity;
import entity.CuisineTypeEntity;
import entity.OperatingHoursEntity;
import entity.StakeholderEntity;
import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.OneToMany;
import util.enumeration.FnbType;
import util.enumeration.IsHalal;
import util.enumeration.PriceRange;

public class FnbBranchState implements Serializable {

    private Long id;
    private String branchName;
    private String contactNumber;
    private String contactPerson;
    private String emailAddress;
    private BranchAddressEntity branchAddress;
    private StakeholderEntity stakeholder;
    private Set<OperatingHoursEntity> operatingHours = new HashSet<OperatingHoursEntity>();
    private FnbType fnBTypeEnum;
    private PriceRange priceRangeEnum;
    private IsHalal isHalalEnum;
    //private String operatingHoursRemarks;
    @OneToMany(cascade = {CascadeType.ALL}, mappedBy = "fnbBranch")
    private Set<CuisineTypeEntity> cuisinePref = new HashSet<CuisineTypeEntity>();
    // other fields not found in database but very very required
    String localizedFnbType;

    /** Creates a new instance of FnbBranchState */
    public FnbBranchState() {
    }

    public FnbBranchState(Long accountId, String branchName,
            String contactNumber, String contactPerson, String emailAddress,
            BranchAddressEntity branchAddress, StakeholderEntity stakeholder,
            Set<OperatingHoursEntity> operatingHours,
            FnbType fnBTypeEnum, PriceRange priceRangeEnum,
            IsHalal isHalalEnum) {   // this field is not found in database
        this.setId(id);
        this.setBranchName(branchName);
        this.setContactNumber(contactNumber);
        this.setContactPerson(contactPerson);
        this.setEmailAddress(emailAddress);
        this.setBranchAddress(branchAddress);
        this.setStakeholder(stakeholder);
        this.setOperatingHours(operatingHours);
        this.setFnBTypeEnum(fnBTypeEnum);
        this.setPriceRangeEnum(priceRangeEnum);
        this.setIsHalalEnum(isHalalEnum);
        //this.setOperatingHoursRemarks(operatingHoursRemarks);
    }

    public FnbBranchState(Long accountId, String branchName,
            String contactNumber, String contactPerson, String emailAddress,
            BranchAddressEntity branchAddress, StakeholderEntity stakeholder,
            Set<OperatingHoursEntity> operatingHours,
            FnbType fnBTypeEnum, PriceRange priceRangeEnum,
            IsHalal isHalalEnum,
            String localizedFnbType) {   // this field is not found in database
        this.setId(id);
        this.setBranchName(branchName);
        this.setContactNumber(contactNumber);
        this.setContactPerson(contactPerson);
        this.setEmailAddress(emailAddress);
        this.setBranchAddress(branchAddress);
        this.setStakeholder(stakeholder);
        this.setOperatingHours(operatingHours);
        this.setFnBTypeEnum(fnBTypeEnum);
        this.setPriceRangeEnum(priceRangeEnum);
        this.setIsHalalEnum(isHalalEnum);
        //this.setOperatingHoursRemarks(operatingHoursRemarks);
        this.setLocalizedFnbType(localizedFnbType);
    }

    public String getLocalizedFnbType() {
        return localizedFnbType;
    }

    public void setLocalizedFnbType(String localizedFnbType) {
        this.localizedFnbType = localizedFnbType;
    }

    public BranchAddressEntity getBranchAddress() {
        return branchAddress;
    }

    public void setBranchAddress(BranchAddressEntity branchAddress) {
        this.branchAddress = branchAddress;
    }

    public String getBranchName() {
        return branchName;
    }

    public void setBranchName(String branchName) {
        this.branchName = branchName;
    }

    public String getContactNumber() {
        return contactNumber;
    }

    public void setContactNumber(String contactNumber) {
        this.contactNumber = contactNumber;
    }

    public String getContactPerson() {
        return contactPerson;
    }

    public void setContactPerson(String contactPerson) {
        this.contactPerson = contactPerson;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Set<OperatingHoursEntity> getOperatingHours() {
        return operatingHours;
    }

    public void setOperatingHours(Set<OperatingHoursEntity> operatingHours) {
        this.operatingHours = operatingHours;
    }

    public StakeholderEntity getStakeholder() {
        return stakeholder;
    }

    public void setStakeholder(StakeholderEntity stakeholder) {
        this.stakeholder = stakeholder;
    }

    public Set<CuisineTypeEntity> getCuisinePref() {
        return cuisinePref;
    }

    public void setCuisinePref(Set<CuisineTypeEntity> cuisinePref) {
        this.cuisinePref = cuisinePref;
    }

    public FnbType getFnBTypeEnum() {
        return fnBTypeEnum;
    }

    public void setFnBTypeEnum(FnbType fnBTypeEnum) {
        this.fnBTypeEnum = fnBTypeEnum;
    }

    public IsHalal getIsHalalEnum() {
        return isHalalEnum;
    }

    public void setIsHalalEnum(IsHalal isHalalEnum) {
        this.isHalalEnum = isHalalEnum;
    }

    public PriceRange getPriceRangeEnum() {
        return priceRangeEnum;
    }

    public void setPriceRangeEnum(PriceRange priceRangeEnum) {
        this.priceRangeEnum = priceRangeEnum;
    }

    public String getEmailAddress() {
        return emailAddress;
    }

    public void setEmailAddress(String emailAddress) {
        this.emailAddress = emailAddress;
    }
}